package models;

import java.util.HashSet;
import java.util.Set;

import play.data.validation.Constraints;

public class Jogador {
	private static Set<Jogador> lista;
	static {
		lista = new HashSet<Jogador>();
		lista.add(new Jogador("Ivan Diniz", "ivandiniz@gmail.com","Aluno TADS"));
		lista.add(new Jogador("Igor", "igor@live.com", "Aluno TADS"));
		lista.add(new Jogador("Hudson", "udson@gmail.com", "Aluno TADS"));
		lista.add(new Jogador("Franklin", "franklin@gmail.com","Aluno TADS"));
	}
	
	@Constraints.Required
	public String nome;
	@Constraints.Required
	public String email;
	public String descricao;
	
	public Jogador(String n, String e, String d){
		nome = n;
		email = e;
		descricao = d;
	}
	
	public Jogador(){}
	
	public static Set<Jogador> todosOsJogadores(){
		return new HashSet<Jogador>(lista);
	}
	
	public static Jogador buscaPorEmail(String e){
		for(Jogador j: lista)
			if(j.email.toLowerCase().equals(e.toLowerCase()))
				return j;
		return null;
	}
	
	public static Set<Jogador> buscaPorNome(String parte){
		final Set<Jogador> resultado = new HashSet<Jogador>();
		for(Jogador j: lista)
			if(j.nome.toLowerCase().contains(parte.toLowerCase()))
				resultado.add(j);
		return resultado;
	}
	
	public static boolean remover(Jogador j){
		return lista.remove(j);
	}
	
	public void salvar(){
		lista.remove(buscaPorEmail(this.email));
		lista.add(this);
	}
	
	public String toString(){
		return String.format("Nome: %s - Email: %s", nome, email);
	}
}
